<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性之state</title>
</head>
<body>

<div id="example"></div>

<script type="text/javascript" src="../js/react.development.js"></script>
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<script type="text/javascript" src="../js/babel.min.js"></script>

<script type="text/babel">
    /*
     功能: 自定义组件初始显示我喜欢你，点击后显示你喜欢我
     */

    //1定义组件
    class Like extends React.Component{

        constructor(props){
            super(props);
            //初始化状态
            this.state = {
                isLikeMe : false
            }

            // //将新增方法中的this强制绑定到组件对象(如果onClick方法中不绑定，这里要绑定,绑定后实际是产生了一个新的函数，只是函数体和定义的函数一致)
            //建议在这里绑定效率高
            // this.handleClick = this.handleClick.bind(this);
        }

        //新建的方法，内部的this默认不是组件对象
        handleClick(){
            const isLikeMe = !this.state.isLikeMe
            //更新状态
            this.setState({ isLikeMe })

        }

        //重写的组件类方法，this默认是组件对象
        render() {
            //读取状态
            const {isLikeMe} = this.state  //结构化赋值 等同于 const isLikeMe = this.state.isLikeMe
            return <h2 onClick={this.handleClick.bind(this)}>{isLikeMe?'你喜欢我':'我喜欢你'}</h2>
        }
    }


    //2 渲染组件
    ReactDOM.render(<Like/>,document.getElementById("example"))



</script>
</body>
</html>